package dk.aiszone.lang.sql.interfaces;

/**
 * Represent a final part of the SQL statment.<br>
 * A <code>SQLPart</code> is a part of the final SQL statment, which either has already been generated,<br>
 * of was lacking some vital information (example: a value) in order to generate properly,<br>
 * and therefore awaits the assignment of a value before being renderer.
 * 
 * @author Ais
 */
public interface SQLPart {

    /**
     * Converts contents of the <code>SQLPart</code> to a <code>String</code>.
     * 
     * @return <code>String</code> representation of the <code>SQLPart</code>.
     */
    public abstract String toSQL();

    /**
     * Converts contents of the <code>SQLPart</code> to a <code>String</code> representing a prepared statement syntax..
     * 
     * @return A prepared statement syntac <code>String</code> representation of the <code>SQLPart</code>.
     */
    public abstract String toPreparedStatement();
}
